package com.leador.module.request;

/**
 * 围栏请求参数
 */
public class Fence {
    // service 的唯一标识
    long serviceId = 0;
    // 围栏名称
    String fenceName = "";
    // 围栏描述
    String fenceDesc = "";
    //围栏ID，作为其唯一标识
    int fenceId = 0;
    //观察者列表
    String observers = "";
    //围栏创建者 创建者的entity_name
    String creator = "";
    // 监控对象列表（多个entityName，以英文逗号"," 分割\）
    String monitoredPersons = "";
    // 生效时间列表
    String validTimes = "";
    // 生效周期
    int validCycle = 4;
    // 围栏生效日期
    String validDate = "";
    // 生效日期列表
    String validDays = "";
    //围栏有两种形状：1代表圆形和2代表多边形。
    int shape = 1;
    // 坐标类型 （1：GPS经纬度，2：国测局经纬度，3：百度经纬度）
    int coordType = 3;
    // 围栏圆心（圆心位置, 格式 : "经度,纬度"）
    String center = "";
    // 围栏半径（单位 : 米）
    double radius = 0;
    //当shape=2时必选经度,纬度;经度,纬度第一个点和最后一个点需要相同 表示闭合多边形
    String coordStr = "";
    // 报警条件（1：进入时触发提醒，2：离开时触发提醒，3：进入离开均触发提醒）
    int alarmCondition = 3;

    /**
     * 返回 service 的唯一标识
     * @return service 的唯一标识
     */
    public long getServiceId() {
        return serviceId;
    }

    /**
     * 设置 service 的唯一标识
     * @param serviceId service 的唯一标识
     */
    public void setServiceId(long serviceId) {
        this.serviceId = serviceId;
    }

    public String getFenceName() {
        return fenceName;
    }

    /**
     * 设置围栏名称
     * @param fenceName 围栏名称
     */
    public void setFenceName(String fenceName) {
        this.fenceName = fenceName;
    }

    /**
     * 返回围栏名称
     * @return 围栏名称
     */
    public String getFenceDesc() {
        return fenceDesc;
    }

    /**
     * 设置围栏描述
     * @param fenceDesc 围栏描述
     */
    public void setFenceDesc(String fenceDesc) {
        this.fenceDesc = fenceDesc;
    }

    /**
     * 返回围栏创建者 创建者的entity_name
     * @return 围栏创建者 创建者的entity_name
     */
    public String getCreator() {
        return creator;
    }

    /**
     * 设置围栏创建者 创建者的entity_name
     * @param creator 围栏创建者 创建者的entity_name
     */
    public void setCreator(String creator) {
        this.creator = creator;
    }

    /**
     * 返回监控对象列表（多个entityName，以英文逗号"," 分割\）
     * @return 监控对象列表（多个entityName，以英文逗号"," 分割\）
     */
    public String getMonitoredPersons() {
        return monitoredPersons;
    }

    /**
     * 设置监控对象列表（多个entityName，以英文逗号"," 分割\）
     * @param monitoredPersons 监控对象列表（多个entityName，以英文逗号"," 分割\）
     */
    public void setMonitoredPersons(String monitoredPersons) {
        this.monitoredPersons = monitoredPersons;
    }

    /**
     * 返回生效时间列表
     * @return 生效时间列表
     */
    public String getValidTimes() {
        return validTimes;
    }

    /**
     * 设置生效时间列表
     * @param validTimes 生效时间列表
     */
    public void setValidTimes(String validTimes) {
        this.validTimes = validTimes;
    }

    /**
     * 返回生效周期
     * @return 生效周期
     */
    public int getValidCycle() {
        return validCycle;
    }

    /**
     * 设置生效周期
     * @param validCycle 生效周期
     */
    public void setValidCycle(int validCycle) {
        this.validCycle = validCycle;
    }

    /**
     * 返回围栏生效日期
     * @return 围栏生效日期
     */
    public String getValidDate() {
        return validDate;
    }

    /**
     * 设置围栏生效日期
     * @param validDate 围栏生效日期
     */
    public void setValidDate(String validDate) {
        this.validDate = validDate;
    }

    /**
     * 返回生效日期列表
     * @return 生效日期列表
     */
    public String getValidDays() {
        return validDays;
    }

    /**
     * 设置生效日期列表
     * @param validDays 生效日期列表
     */
    public void setValidDays(String validDays) {
        this.validDays = validDays;
    }

    /**
     * 返回围栏有两种形状：1代表圆形和2代表多边形。
     * @return 围栏有两种形状：1代表圆形和2代表多边形。
     */
    public int getShape() {
        return shape;
    }

    /**
     * 设置围栏有两种形状：1代表圆形和2代表多边形。
     * @param shape 围栏有两种形状：1代表圆形和2代表多边形。
     */
    public void setShape(int shape) {
        this.shape = shape;
    }

    /**
     * 返回坐标类型 （1：GPS经纬度，2：国测局经纬度）
     * @return 坐标类型 （1：GPS经纬度，2：国测局经纬度）
     */
    public int getCoordType() {
        return coordType;
    }

    /**
     * 设置坐标类型 （1：GPS经纬度，2：国测局经纬度
     * @param coordType 坐标类型 （1：GPS经纬度，2：国测局经纬度
     */
    public void setCoordType(int coordType) {
        this.coordType = coordType;
    }

    /**
     * 返回围栏圆心（圆心位置, 格式 : "经度,纬度"）
     * @return 围栏圆心（圆心位置, 格式 : "经度,纬度"）
     */
    public String getCenter() {
        return center;
    }

    /**
     * 设置围栏圆心（圆心位置, 格式 : "经度,纬度"）
     * @param center 围栏圆心（圆心位置, 格式 : "经度,纬度"）
     */
    public void setCenter(String center) {
        this.center = center;
    }

    /**
     * 返回围栏半径（单位 : 米）
     * @return 围栏半径（单位 : 米）
     */
    public double getRadius() {
        return radius;
    }

    /**
     * 设置围栏半径（单位 : 米）
     * @param radius 围栏半径（单位 : 米）
     */
    public void setRadius(double radius) {
        this.radius = radius;
    }

    /**
     * 返回当shape=2时必选经度,纬度;经度,纬度第一个点和最后一个点需要相同 表示闭合多边形
     * @return 当shape=2时必选经度,纬度;经度,纬度第一个点和最后一个点需要相同 表示闭合多边形
     */
    public String getCoordStr() {
        return coordStr;
    }

    /**
     * 设置当shape=2时必选经度,纬度;经度,纬度第一个点和最后一个点需要相同 表示闭合多边形
     * @param coordStr shape=2时必选经度,纬度;经度,纬度第一个点和最后一个点需要相同 表示闭合多边形
     */
    public void setCoordStr(String coordStr) {
        this.coordStr = coordStr;
    }

    /**
     * 返回报警条件（1：进入时触发提醒，2：离开时触发提醒，3：进入离开均触发提醒）
     * @return 报警条件（1：进入时触发提醒，2：离开时触发提醒，3：进入离开均触发提醒）
     */
    public int getAlarmCondition() {
        return alarmCondition;
    }

    /**
     * 设置报警条件（1：进入时触发提醒，2：离开时触发提醒，3：进入离开均触发提醒）
     * @param alarmCondition
     */
    public void setAlarmCondition(int alarmCondition) {
        this.alarmCondition = alarmCondition;
    }

    /**
     * 返回围栏ID，作为其唯一标识
     * @return 围栏ID，作为其唯一标识
     */
    public int getFenceId() {
        return fenceId;
    }

    /**
     * 设置 围栏ID，作为其唯一标识
     * @param fenceId 围栏ID，作为其唯一标识
     */
    public void setFenceId(int fenceId) {
        this.fenceId = fenceId;
    }

    /**
     * 返回 观察者列表
     * @return 观察者列表
     */
    public String getObservers() {
        return observers;
    }

    /**
     * 设置 观察者列表
     * @param observers 观察者列表
     */
    public void setObservers(String observers) {
        this.observers = observers;
    }
}
